﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AutonomicComputingLibrary.MAPE.Monitor.Main
{
    interface IMonitor
    {

         int HeartRate { get; set; }

          bool  monitorPaused { get; set; }

         string msgErr { get; set; }

          string lastMsgErr { get; set; }

         string msgWarning { get; set; }

          string lastMsgWarning { get; set; }

         string msgInfo { get; set; }

          string lastMsgInfo { get; set; }

         DateTime startTime { get; set; }

         void PauseMonitor();
       

        /// <summary>
        /// This method can be used to pause the monitor at a given time
        /// </summary>
        /// <param name="pauseTime"></param>
         void PauseMonitor(DateTime pauseTime)
       ;

        /// <summary>
        /// Allow the monitoring to begin
        /// </summary>
         void StartMonitor()
      ;


        /// <summary>
        /// Stop the monitoring. This will also clear system state for this node.
        /// </summary>
         void StopMonitor()
        ;


        /// <summary>
        /// Reset the monitoring. This will clear system state for this node. However, it not stop the system from monitoring.
        /// </summary>
         void ResetMonitor()
        ;

        /// <summary>
        /// Update other agent
        /// </summary>
        /// <param name="sendMessageTo"></param>

         void SendMessage(Object sendMessageTo)
      ;

        /// <summary>
        /// Update all agents
        /// </summary>
         void SendMessageBroadcast();






    }
}
